1. Field
The present disclosure is directed to technology for monitoring software in a computing environment.
2. Background
The growing presence of the Internet as well as other computer networks such as intranets and extranets has brought many new applications in e-commerce, education and other areas. Organizations increasingly rely on such applications to carry out their business or other objectives, and devote considerable resources to ensuring that they perform as expected. To this end, various application management techniques have been developed.
One approach involves monitoring the infrastructure of the application by collecting application runtime data regarding the individual software components that are invoked in the application. This approach can use agents that essentially live in the system being monitored. For example, using instrumentation of the software, a thread or process can be traced to identify each component that is invoked, as well as to obtain runtime data such as the execution time of each component. Tracing refers to obtaining a detailed record, or trace, of the steps a computer program executes. Traces can be used as an aid in debugging.
However, deciding which components to instrument can be problematic. An over-inclusive approach can result in excessive overhead costs and possibly impair the operation of the application. An under-inclusive approach can miss out on collecting important information. In some cases, the problem is not with being over- or under-inclusive, but rather with selection of the proper component to instrument. For example, the desired information might be obtained by instrumenting a different component that results in lower overhead. Furthermore, determining which components to instrument can be time consuming and confusing to a user, such as a system administrator.